

    // 递归地设置嵌套值
 static var  set(object me, string path, var value) {
        string *parts = path.split("/");
        var currentMap = me.attr;
        for (var i = 0; i < parts.size() - 1; i++) {
            //需要检查是否是mapp string为空也是false
            var nextMap = currentMap.get(parts[i]);
            if (!nextMap) {
                nextMap = ({});
                currentMap.put(parts[i], nextMap);
            }
            currentMap = nextMap;
        }
        currentMap.put(parts[parts.size() - 1], value);

    }

    // 递归地获取嵌套值
  static var  query(object me, string path) {
        string* parts = path.split("/");
    
        var currentMap = me.attr;

        if( intp(currentMap) ){
            println("调用query的对象是"+baseName(me));

        }

        if( parts.size()<=0 ){
            varDump(path,parts,me);

        }

        for (int i = 0; i < parts.size(); i++) {
        //x[d]
          
            if(intp(currentMap)){
                println("调用query的对象是"+baseName(me));
                varDump(path,parts,me);
            }
            var nextMap = currentMap.get(parts[i]);
            if (!nextMap) {
                return 0;
            }
            currentMap = nextMap;
        }
        return currentMap;
    }
